package cn.edu.ncut.cs.springboot.petmanagementsystem.mapper;

import cn.edu.ncut.cs.springboot.petmanagementsystem.pojo.ProductReview;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品评价Mapper接口
 */
@Mapper
public interface ProductReviewMapper extends BaseMapper<ProductReview> {

    /**
     * 根据商品ID获取评价列表（分页）
     *
     * @param productId 商品ID
     * @param offset 偏移量
     * @param pageSize 每页大小
     * @return 评价列表
     */
    List<ProductReview> selectByProductId(@Param("productId") Long productId,
                                          @Param("offset") Integer offset,
                                          @Param("pageSize") Integer pageSize);

    /**
     * 根据商品ID获取评价总数
     *
     * @param productId 商品ID
     * @return 评价总数
     */
    Integer countByProductId(@Param("productId") Long productId);

    /**
     * 检查用户是否已评价该订单的商品
     *
     * @param userId 用户ID
     * @param orderId 订单ID
     * @param productId 商品ID
     * @return 评价记录
     */
    ProductReview checkUserReview(@Param("userId") Long userId,
                                   @Param("orderId") Long orderId,
                                   @Param("productId") Long productId);
}
